package 热题目100.字母异位词分组;

import java.util.*;

public class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for(String str: strs){
            //把字符串转换成字符数组
            char[] chars = str.toCharArray();
            //根据字符数组排序，例如 "eat" -> "aet"
            Arrays.sort(chars);
            //把排序后的字符数组转换成字符串，作为哈希表的键
            String key = new String(chars);
            //如果哈希表没有这个键，则创建一个空的列表，并把当前字符串加入列表中，作为哈希表的值
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            map.put(key, list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}
